// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import BaseClass from '@api/maintain/model/PlanDto'
import PeriodClass from '@api/maintain/model/PlanCycleDto'
import state from '@admin/components/detail/DetailTask/store/state'
import API from './API'

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API,

  /**
   * 映射
   */
  MAP: {
    WORD: '计划', // 词语
    INIT_PERIOD: CORE.initObj(PeriodClass, { cycleStartTime: '', cycleEndTime: '' }),
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 类型
     */
    TYPE: state.DICT.TYPE,

    /**
     * 对象
     */
    TARGET: state.DICT.TARGET,

    /**
     * 周期单位
     */
    PERIOD_UNIT: [
      ['日', '日'],
      ['月', '月'],
      ['年', '年'],
    ],
  },

  /**
   * 初始参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setParam() 重置时使用
   * 4. WebSearch 高级查询点重置时使用
   */
  INIT_PARAM: CORE.initObj(BaseClass, {
    //
  }),

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. setOne() 合并时使用
   * 3. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(BaseClass, {
    cycleType: '日', // 计划周期类型：年，月，日，时
    status: 1,
    planAssetIds: '',
    planAssetDto: [], // 计划资产列表
    planCycleDto: [], // 计划周期列表

    immediateVisible: false, // 立即弹窗是否可见
    invalidTime: 0, // 立即生成任务的截止时间
  }),
}
